<meta charset="utf-8"/>
<?php
//                       函数的使用(讲解)
//php 变量的范围
//局部变量：在函数声明中的变量，只能在自己的函数内部使用。
//全局变量：在函数外声明，在变量声明以后的，直到整个脚本结束都可使用
//           包括在函数中和{}中都可使用


//php的特性：
//     1、php的变量分不出是声明还是使用
//     2、在php中使用全局变量 要通过 global 关键字讲这个全局变量包括
//        到函数中才能使用。在global声明之后才是使用全局的变量


//注：参数就是局部变量，这个局部变量可以在调用时去赋值


//php的静态变量
//     静态变量只能声明在函数中（类中），不能在全局声明。
//     使用 static 在变量前


//声明静态变量的作用：一个变量可以在同一函数在多次调用中共用
//    1、静态变量在静态代码段中保存 。
//    2、一个函数多次调用之间共用，但只在第一次调用函数时声明到内存，
//       以后再调用，就不需要声明，可直接使用。


//变量函数（也称可变函数）：如果一个变量后面有括号$var=hello $var(),
//                          就将寻找与变量值同名的函数 hello();



//函数的使用
//    1、函数的功能：决定是否使用这个函数
//    2、函数的参数：决定函数怎么调用，有几个参数，传什么类型的值
//    3、函数的返回值：调用后怎么处理这个函数

//注：php有2000多个函数，都属于系统函数，都可以通过名称直接使用
//    一定要先使用系统函数，如没有想要的功能，再自己定义函数


//1、常规函数
//        bool copy(string source,string dest)
//2、带有mixed,mix表示可以传任何类型的数据
//        boolchowm(string filename,mixed user)
//3、带有&符号参数的函数，表示引用赋值，这个参数不能传值，
//   只能传一个变量，然后函数将变量的值改变，我们在使用这个值时，
//   值也是变化的。
//        bool arsort(array &array[,int sort_flags])
//4、默认函数：带有[]符号的函数，表示这个参数是可选的，如果你传值了就使用
//   你传的值，如果没有传值则使用默认值。
//   方法：直接在声明函数时，就为参数给初值（如：$a=1）
//   可选值和必须值，必须从后向前设置（也就是从左到右的顺序）如：
//   function demo($a=1,$b=2,$c)不成立，只能($a,$b=1,$c=2)
//        bool arsort(array &array[,int sort_flags])
//5、带有---的参数函数,---表示可以传任意多个参数
//    int array_unshift(array &array,mixed var[,mixed---])
//6、回调函数 带有callback,就是调用这个函数时需要我们传一个函数进来（函数名，函数名字符串）
//   array   array_filter(array input[,callback callback])


